#include<iostream>
#include<cstring>
using namespace std;
int d[201][201];
int dp[201];
int lie[201];
int n;
long long int maxs=-99999999;
long long int max(long long a,int b){
	return a>b?a:b;
}
void dps(){
	memset(dp,0,sizeof(dp));
	for(int i=1;i<=n;i++){
		dp[i]=max(lie[i],dp[i-1]+lie[i]);
		maxs=max(maxs,dp[i]);
	}
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			cin>>d[i][j];
		}
	}
	for(int i=1;i<=n;i++){
		memset(lie,0,sizeof(lie)) ;
		for(int j=i;j<=n;j++){
			for(int k=1;k<=n;k++){
				lie[k]+=d[j][k];
			}
			dps();
		}
	}
	cout<<maxs;
}
